package com.yuanqi.service;

import com.yuanqi.pojo.CommodityCategory;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author LENOVO
* @description 针对表【commodity_category(商品类目)】的数据库操作Service
* @createDate 2025-08-26 15:23:58
*/
public interface CommodityCategoryService extends IService<CommodityCategory> {

    List<CommodityCategory> listTree();
    
    /**
     * 级联删除分类及其下的所有商品
     * @param categoryId 分类ID
     * @return 是否删除成功
     */
    boolean deleteCategoryWithProducts(Long categoryId);
    
    /**
     * 递归级联删除分类及其子分类下的所有商品
     * @param categoryId 分类ID
     * @return 是否删除成功
     */
    boolean deleteCategoryRecursively(Long categoryId);
    
    /**
     * 检查分类下是否有商品
     * @param categoryId 分类ID
     * @return 商品数量
     */
    long countProductsByCategory(Long categoryId);
    
    /**
     * 检查分类及其子分类下是否有商品
     * @param categoryId 分类ID
     * @return 商品数量
     */
    long countProductsByCategoryRecursively(Long categoryId);
}
